N0 V0w3ls - CS50x 2023
学习目标
- 练习使用字符串
- 练习使用命令行参数
- 从零开始编写程序

背景
如果你经常上网,可能见过 leetspeak (黑客语)(或者更准确地说,是“l33tsp36k”!)。 Leetspeak 指的是用符号替换字母字符,这些符号在一定程度上模仿字母的形状。 在这个实验中,你将编写一个程序来用数字替换某些元音!
之前你可能经常会接触到已经提供初始代码的程序。 你会注意到,下载该问题的初始代码("distro")后,你会发现它包含了一些常用库和一个空的 main 函数。 在这个问题中,你需要将命令行输入的单词进行转换,用数字替换其中的元音字母。
提示
main函数中使用了argc和argv,请务必利用它们!- 在
main函数中,请先检查命令行参数的数量是否正确。
演示

开始
- 使用你的 GitHub 帐户登录 cs50.dev。
- 单击终端窗口内部并执行
cd。 - 在
$提示符下,键入mkdir no-vowels - 现在执行
cd no-vowels - 然后复制并粘贴以下命令
wget https://cdn.cs50.net/2022/fall/labs/2/no-vowels.c到终端,下载本次实验的初始代码。
实现细节
- 你的程序需要在名为
no-vowels的目录下,创建一个名为no-vowels.c的文件来实现。 - 你的程序必须接收一个命令行参数,作为需要转换的单词。
- 如果程序在没有命令行参数或多于一个命令行参数的情况下运行,程序应该使用
printf打印一条自定义错误信息,并立即从main函数返回 1 (通常表示错误)。 - 你的程序必须包含一个名为
replace的函数,该函数接收一个字符串类型的输入,并返回一个字符串类型的输出。 - 这个函数会将以下元音字母替换为数字:
a替换为6,e替换为3,i替换为1,o替换为0,u则不作改变。 replace函数的输入参数是argv[1],返回值是转换后的单词。- 之后,
main函数会打印转换后的单词,并加上\n换行符。 - 建议尝试在
replace函数中使用switch语句。 要检查您的代码风格(缩进和空格)是否符合规范,请在$提示符后输入以下命令。
如何提交
无需提交!这是一个选做练习,在实验课上完成即可。